package partTwo;
/*
本类用于this第二个功能测试
 */
public class TestThis2 {
    public static void main(String[] args) {
        Apple a = new Apple();   //创建对象，触发被动调用无参构造
        //Apple a1 = new Apple("红富士");  //创建对象，触发被动调用含参构造
        a.clean();

        //a.Apple();  不允许，会报错，不能直接写出调用，只能被动调用
        // a.Apple("红富士");  不允许，会报错，不能直接写出调用，只能被动调用
    }
}

//1.创建类Apple
class  Apple{
    //创建类的无参构造
    public Apple(){
        /* this(参数); 表示在本构造中，调用本类的对应参数的构造方法
         * main中调用无参构造，无参构造中第一句为含参构造，所以输出含参后再输出无参，均调用
         * this调用构造方法的语句，不能来回互相调用，会死循环，只能选一个执行
         * this调用构造方法的语句，必须在构造方法的第一行*/
        this("青苹果");
        System.out.println("无参构造");
    }
    //创建类的含参构造
    public Apple(String s){
        /* this();表示在本构造方法中调用本类的无参构造*/
        //this();
        System.out.println("含参构造");
    }
    //创建普通方法
    public void clean(){
        System.out.println("测试调用");
    }
}
